1. Field of the Invention
The present invention generally relates to the field of Web services. More specifically, the present invention relates to integrated development and deployment of stateful Web services.
2. Background Information
There is a rapidly expanding industry emerging around web services, a term loosely defined as the ability to share software as a service using network protocols. Industry leaders are busy developing an infrastructure to enable web services, including mechanisms for finding web services, understanding what they offer and interacting with them via extensible Markup Language (XML) messages. This web services infrastructure aims to enable a new breed of distributed software application composed of software and information services shared across the Internet.
As the web service infrastructure evolves, it is becoming increasingly complicated, requiring more time, skill, knowledge and ultimately money to create web services. Consequently, the generation and deployment of web services is increasingly tedious and unnecessarily complicated for the average developer. Currently, in addition to developing the software logic offered via the web service, developers are also required to address a number of tedious and complex issues involving web service generation and deployment.
For example, in order to generate and deploy the most basic of web services, developers are currently required to implement one or more mechanisms for: Sending and receiving data via internet protocols; parsing and generating message bodies and headers packaged using protocols such as the Simple Object Access Protocol (SOAP); controlling access to services in a secure way; mapping data between XML messages and internal data structures within the web service logic; transacting operations so they are reliable and predictable; decoupling temporal dependencies so distributed applications can proceed reliably when external services are down or unavailable; decoupling implementation dependencies so distributed applications can proceed predictably when external services change their underlying implementations; developing service descriptions e.g. using the Web Services Description Language (WSDL) and using external web services described by e.g. WSDL; developing proxy objects that make it easy for client software written in a variety of languages to interact with the service and for the service to interact with other external services; and so forth.
Thus, it can be readily seen that in addition to developing the web service logic, current day developers are also required to spend time and effort on implementation and deployment aspects unrelated to the web service logic. This is particularly true for non-trivial web services, which manage many simultaneous stateful and asynchronous conversations in a secure, reliable, scalable and rapidly evolvable way. Such stateful and asynchronous web services further require mechanisms for tracking and correlating the requests associated with each stateful conversation (identified as a series of related service requests), for managing the data associated with many simultaneous, long running conversations, and for coordinating asynchronous conversations that do not return immediate results, just to name a few.